#ifndef Mod_NetConfig
#define Mod_NetConfig

#ifdef __cplusplus
extern "C" {
#endif

#include <stdint.h>
#include <stdio.h>
#include <stdbool.h>
#include "../BSP/Drv_W5500.h"
#include "W25Q64.h"
#include "TypeDefine.h"
#include "STM32_Uart.h"
	

#define NET_CONFIG_ADDRESS  0x00080000UL
#define Socket_CONFIG_ADDRESS  0x00081000UL
#define UART_CONFIG_ADDRESS  0x00082000UL


	
	
///**
// * socketclient���ýṹ�� 
// * 
// * 
// */
typedef struct
{
	uint8_t server_ip[4]; // ������IP��ַ
	uint16_t port0;		  // 服务端socket0端口
	uint16_t port1;		  // 服务端socket1端口
	uint16_t port2;		  // 服务端socket2端口
	uint16_t port3;		  // 服务端socket2端口
	uint16_t port4;		  // 服务端socket4端口
	uint16_t port5;		  // 服务端socket5端口
	uint16_t localport0;		  // 本地socket0 端口
	uint16_t localport1;		  // 本地socket1 端口
	uint16_t localport2;		  // 本地socket2 端口
	uint16_t localport3;		  // 本地socket3 端口
	uint16_t localport4;		  // 本地socket4 端口
	uint16_t localport5;		  // 本地socket5 端口
	
} SocketConfig;

NetCfg_TypeDef NetworkConfig_Read();
SocketConfig SocketCfg_Read();
bool UartConfig_ReadAll(UART_ConfigTypeDef configs_out[]);

//RemotNetCfg_TypeDef* RemoteNetCfg_Read();
void NetworkConfig_Write(NetCfg_TypeDef config);
void SocketConfig_Write(SocketConfig config);
void UartCfg_WriteAll(UART_ConfigTypeDef *configs, uint8_t count);

//void RemoteNetworkConfig_Write(RemotNetCfg_TypeDef *config);
void printNetConfig(NetCfg_TypeDef *cfg);	
	
extern NetCfg_TypeDef localnet_config;   //声明外部全局网络配置项
extern SocketConfig socket_config;    //声明外部全局socket配置项 	
//extern UART_ConfigTypeDef uart_config;    //声明外部全局uart配置项 	
extern UART_ConfigTypeDef g_uartConfigs[UART_PORT_NUM];	

	
#ifdef __cplusplus
}
#endif


#endif
